package com.abss.vote.service;

import com.abss.vote.model.UserVoteInfo;
import com.abss.vote.model.Work;

public interface RedisService {

    //此方法为手动将数据库有效数据写入redis
    void sqlserverToRedis();

    //创建活动
    void addActivity(Integer activityId);

    //删除活动
    int deleteActivity(Integer activity_id);

    //获取报名人数
    int getREG_USER(int activity_id);

    //改版新    将redis中的活动信息写入数据库
    void setActivityDetailFromRedisToSqlServer(int activity_id);

    //改版新    将redis中的作品信息写入数据库
    void setWorkDetailFromRedisToSqlServer(int activity_id);

    //获取每天限制点赞数
    int getVOTES_LIMIT_PERDAY(int activity_id);

    //获取作品点赞数
    int getVOTES_LIMIT_TOSINGLE_PERDAY(int activity_id);

    ////获取该用户的投票信息
    UserVoteInfo getUSERVOTESINFO(int ACTIVITY_ID, String USER_ID, int WORK_ID);

    //添加活动总投票数
    void addVote(int ACTIVITY_ID, String USER_ID, int WORK_ID);

    //添加浏览数
    void setVisist(int activity_id);

    //作品浏览数加一
    void setWorkVisist(int activity_id,Integer work_id);

    Integer getWOrkVotesNumber(int activity_id, Integer work_id);

    //获取投票人数
    int getVotesUser(int activity_id);

    //获取投票总数量
    int getVotesNumber(int activity_id);

    //获取浏览数
    int getVisist(int activity_id);
    //获取浏览数
    int getWorkVisist(int activity_id,Integer work_id);

    //减少报名人数
    void delREG_USER(int activity_id);

    //添加报名数
    void setREG_USER(int activity_id);

    void addWork(Work work);

    //每天点赞次数
    void setVotesLinitPerday(int votes_limit_perday, int activity_id);

    //向redis中写入每天对同一作品点赞次数
    void setVotesLimitTosinglePerday(int votes_limit_tosingle_perday, int activity_id);

    //将redis中点赞信息数据写入数据库并清除redis中点赞信息数据
    void addUSERVOTESINFO();

    //将redis中点赞信息数据写入数据库并清除redis中点赞信息数据
    void addUserVisitAndVoteInfoFromRedisToServer();

//活动

//    //将redis中活动数据写入数据库并清除redis中活动信息
//    void addActivity();
//    //将数据库中活动数据写入redis
//    void setActivityNoDeled();










//
////作品
//
//    //将redis中作品数据写入数据库并清除redis中作品数据
//    void addWork();
//    //将数据库中作品数据写入redis
//    void setWork();


//    //获取作品投票数量
//    int getWOrkVotesNumber(int workId);
//
////点赞
//

//    //将redis中点赞数据写入数据库并清除redis中点赞数据
//    void addVOTES();
//
////点赞信息
//




//    //将数据库中点赞信息写入redis
//    void setUserVotesInfo();

}
